package com.wego.converter;

import com.wego.bean.BaseConverter;
import com.wego.bean.ExcelConverter;
import com.wego.domain.details.StrategyDetails;
import com.wego.domain.dto.StrategyDTO;
import com.wego.domain.entity.Strategy;
import com.wego.domain.excel.StrategyExcel;
import com.wego.domain.vo.StrategyVO;
import org.mapstruct.Mapper;

@Mapper(componentModel = "spring")
public interface StrategyConverter extends BaseConverter<Strategy, StrategyVO,StrategyDetails, StrategyDTO>, ExcelConverter<Strategy, StrategyExcel> {
    /**
     * 将Strategy对象转换为StrategyDetails对象
     * 该方法会将Strategy对象中的status编码转换为对应的文本描述
     *
     * @param strategy 源Strategy对象，包含文章基本信息和状态编码
     * @return StrategyDetails对象，包含转换后的文章详细信息，其中status为文本描述
     */

    StrategyDetails strategy2strategyDetails(Strategy strategy);

    /**
     * 将Strategy对象转换为StrategyExcel对象
     * 该方法会将Strategy对象中的status编码转换为对应的文本描述，用于Excel导出
     *
     * @param strategy 源Strategy对象，包含文章基本信息和状态编码
     * @return StrategyExcel对象，包含转换后的文章Excel信息，其中status为文本描述
     */

    StrategyExcel strategy2strategyExcel(Strategy strategy);

    /**
     * 将StrategyExcel对象转换为Strategy对象
     * 该方法会将StrategyExcel对象中的status文本描述转换为对应的编码
     *
     * @param strategyExcel 源StrategyExcel对象，包含从Excel导入的文章信息
     * @return Strategy对象，包含转换后的文章基本信息，其中status为编码
     */

    Strategy strategyExcel2strategy(StrategyExcel strategyExcel);

}
